import Vue from 'vue';
import axios from 'axios';

// 创建axios实例对象
// 原来是直接使用的axios({ ... })，这个会使用默认的axios对象
const req = axios.create({
  // 在这里可以做全局配置
  baseURL: 'http://127.0.0.1:8888/api/private/v1/',
});

// 设置请求拦截器，所有的请求在发送出去之前，都会先经过这里
req.interceptors.request.use((config) => {
  // console.log(config);
  config.headers.Authorization = localStorage.getItem('token');
  return config;
});

Vue.prototype.request = {
  // 登录
  login(data) {
    return req({
      method: 'POST',
      url: '/login',
      data,
    });
  },
  getLeftMenus() {
    return req({
      method: 'GET',
      url: '/menus',
    });
  },
  getUsers(data) {
    return req({
      method: 'GET',
      url: '/users',
      params: data,
    });
  },
  userState(uid, state) {
    return req({
      method: 'PUT',
      url: `users/${uid}/state/${state}`,
    });
  },
  add(data) {
    return req({
      method: 'POST',
      url: '/users',
      data,
    });
  },
  get(id) {
    return req({
      method: 'GET',
      url: `users/${id}`,
    });
  },
  put(id, email, mobile) {
    return req({
      method: 'PUT',
      url: `users/${id}`,
      data: {
        email,
        mobile,
      },
    });
  },
  del(id) {
    return req({
      method: 'DELETE',
      url: `users/${id}`,
    });
  },
  roles(id, rid) {
    return req({
      method: 'PUT',
      url: `users/${id}/role`,
      body: {
        rid,
      },
    });
  },
};
